package com.pureut.production.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pureut.production.domain.SpunlaceOutputDetail;
import com.pureut.production.domain.dto.ManufacturingOrderDto;
import com.pureut.production.domain.dto.PrintDto;
import com.pureut.production.domain.dto.SpunlaceOutputDetailDto;
import com.pureut.production.domain.dto.SpunlaceOutputViewDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/***
 *
 * Author:C
 * Date:2023/02/20 13:31
 * @DESC
 */
@Mapper
public interface SpunlaceOutputDetailMapper extends BaseMapper<SpunlaceOutputDetail> {

    /**
     * 水刺产出明细列表
     * @param moNumber
     * @return
     */
    List<SpunlaceOutputDetailDto> selectDetail(String moNumber);

    /**
     * 查询水刺产出明细最近一条送检的单据
     * @return
     */
    SpunlaceOutputDetailDto selectQuality(String moNumber);

    /**
     * 补打
     * @param idList
     * @return
     */
    List<SpunlaceOutputDetailDto> selectReprint(@Param("idList") List<String> idList);

    /**
     * 修正回显
     * @param id
     * @return
     */
    SpunlaceOutputViewDto editView(Long id);

    /**
     * 根据物料号码获取明细数据(fegin调用)
     */
    SpunlaceOutputDetailDto getSpunlaceDetail(String materialNumber);

    /**
     * 查询当前指令单下第一个批次的品质检验单号
     * @param moNumber
     * @param productionBatch
     * @return
     */
    SpunlaceOutputDetailDto selectPiciQuality(String moNumber, String productionBatch);

    /**
     * 根据产品号码查出条码信息
     * @param materialNumber
     * @return
     */
    PrintDto selectPrintInfo(String materialNumber);

    /**
     *  根据制令单号获取明细数据(fegin调用)
     */
    List<SpunlaceOutputDetailDto> getDetailList(String orderNum);

    /**
     * 修改卷长
     * @param productionNumber
     * @return
     */
    boolean editRollLengthChange(@Param("productionNumber") String productionNumber,@Param("rollLength") double rollLength);

    /**
     * 根据母卷号码删除水刺产出明细
     * @param masterVolumeNumber
     * @return
     */
    int deleteSpunlaceOutputInfoById(String masterVolumeNumber);

    /**
     * 模糊查询当前制令单下母卷最大流水号
     * @param split
     * @return
     */
    String getMaxNumber(String split);

    /**
     * 查询最后一个母卷产出跨天时间
     * @return
     */
    SpunlaceOutputDetail selectOutputDateTime(String spunlaceOrderNumber);


    /**
     * 查询A，B班分别产出多少重量
     * @return
     */
    ManufacturingOrderDto selectGroupByWeight(String spunlaceOrderNumber);

    /**
     * 查询每个班次的产量
     * @return
     */
    List<ManufacturingOrderDto> groupByClassWeight(String spunlaceOrderNumber);

    /**
     * 查询产出数量
     * @param spunlaceOrderNumber
     * @return
     */
    Long selectProductionCount(String spunlaceOrderNumber);

    /**
     * 查询品质检验单下状态为不合格的下一个母卷
     * @return
     */
    SpunlaceOutputDetail selectDefects(String spunlaceOrderNumber);

    /**
     * 查询物料等级不
     * @param docNum
     * @return
     */
    List<SpunlaceOutputDetail> selectIsNullGrade(String docNum);

    /**
     * 根据母卷号码查询详情(产品追溯feign)
     * @param productionNumber
     * @return
     */
    SpunlaceOutputDetailDto selectSpunlaceDetailList(String productionNumber);
}
